Weight benefit evaluator for training data

ABSTRACT

Technologies are generally described for methods and systems effective to determine a weight benefit associated with application of weights to training data in a machine learning environment. In an example, a device may determine a first function based on the training data, where the training data includes training inputs and training labels. The device may determine a second function based on weighted training data, which is based on application of weights to the training data. The device may determine a third function based on target data, where the target data is generated based on a target function. The target data may include target labels different from the training labels. The device may determine a fourth function based on weighted target data, which is a result of application of weights to the target data. The device may determine the weight benefit based on the first, second, third, and fourth functions.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation under 35 U.S.C. §120 of U.S. application Ser. No. 14/451,859 filed on Aug. 5, 2014. U.S. application Ser. No. 14/451,859 claims priority to U.S. Provisional Application No. 62/015,133 filed Jun. 20, 2014 and U.S. Provisional Application No. 61/907,504 filed Nov. 22, 2013. The disclosure of these applications is hereby incorporated herein by reference in its entirety. U.S. application Ser. No. 14/451,859 is related to U.S. application Ser. No. 14/451,870 filed Aug. 5, 2014 entitled GENERATION OF WEIGHTS IN MACHINE LEARNING, U.S. application Ser. No. 14/451,899 filed Aug. 5, 2014 entitled WEIGHT GENERATION IN MACHINE LEARNING, and U.S. application Ser. No. 14/451,935 filed Aug. 5, 2014 entitled ALTERNATIVE TRAINING DISTRIBUTION DATA IN MACHINE LEARNING.

BACKGROUND

In machine learning environments, training data, including training inputs and training labels, may be used to determine a learned function. The learned function may be effective to indicate a relationship between the training inputs and training labels. The learned function may be deployed in a machine learning system. The machine learning system may receive test inputs and may apply the learned function to the test inputs to produce test labels, where the test inputs and the test labels may be formed into test data.

SUMMARY

In some examples, methods to determine a weight benefit associated with training data in a machine learning environment are generally described. The methods may include determining, by a device, a first function based on the training data, wherein the training data may include training inputs and training labels. The methods may also include applying, by the device, a set of weights to the training data to generate weighted training data. The methods may also include determining, by the device, a second function based on the weighted training data. The methods may also include generating, by the device, target data based on a target function. The target data may include target labels different from the training labels. The methods may also include determining, by the device, a third function based on the target data. The methods may also include applying, by the device, the set of weights to the target data to generate weighted target data. The methods may also include determining, by the device, a fourth function based on weighted target data. The methods may also include determining, by the device, the weight benefit based on the first, second, third, and fourth functions. The weight benefit may be associated with a benefit to apply the set of weights to the training data.

In some examples, systems effective to determine a weight benefit associated with training data in a machine learning environment are generally described. The systems may include a memory. The memory may be configured to store the training data. The training data may include training inputs and training labels. The memory may also be configured to store a set of weights. The systems may also include a target function generation module configured to be in communication with the memory. The target function generation module may be configured to generate target data based on a target function. The target data may include target labels different from the training labels. The target function generation module may also be configured to store the target data in the memory. The systems may also include a processing module configured to be in communication with the target function generation module and the memory. The processing module may be configured to apply the set of weights to the training data to generate weighted training data. The processing module may also be configured to apply the set of weights to the target data to generate weighted target data. The processing module may also be configured to store the weighted training data and the weighted target data in the memory. The systems may also include a machine learning module configured to be in communication with the target function generation module, the processing module, and the memory. The machine learning module may be configured to determine a first function based on the training data. The machine learning module may also be configured to determine a second function based on the weighted training data. The machine learning module may also be configured to determine a third function based on the target data. The machine learning module may also be configured to determine a fourth function based on weighted target data. The systems may also include an evaluation module configured to be in communication with the target function generation module, the processing module, the machine learning module, and the memory. The evaluation module may be configured to determine the weight benefit based on the first, second, third, and fourth functions. The weight benefit may be associated with a benefit to apply the set of weights to the training data.

In some examples, methods to determine a weight benefit associated with training data in a machine learning environment are generally described. The methods may include receiving, by a first device, a first function from a second device. The first function may be based on the training data. The training data may include training inputs and training labels. The methods may also include receiving, by the first device, a set of weights from the second device. The methods may also include receiving, by the first device, a second function from the second device. The second function may be based on weighted training data. The weighted training data may be based on the set of weights. The methods may also include generating, by the first device, target data based on a target function. The target data may include target labels different from the training labels. The methods may also include determining, by the first device, a third function based on the target data. The methods may also include, applying, by the first device, the set of weights to the target data to generate weighted target data. The methods may also include determining, by the first device, a fourth function based on weighted target data. The methods may also include determining, by the first device, the weight benefit based on the first, second, third, and fourth functions. The weight benefit may be associated with a benefit to apply the set of weights to the training data.

The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the drawings and the following detailed description.

BRIEF DESCRIPTION OF THE FIGURES

The foregoing and other features of this disclosure will become more fully apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. Understanding that these drawings depict only several embodiments in accordance with the disclosure and are, therefore, not to be considered limiting of its scope, the disclosure will be described with additional specificity and detail through use of the accompanying drawings, in which:

FIG. 1 illustrates an example system that can be utilized to implement a weight benefit evaluator for training data;

FIG. 2 illustrates the example system of FIG. 1 with additional detail relating to determination of an artificial learned function and an artificial weighted function;

FIG. 3 illustrates the example system of FIG. 1 with additional detail relating to determination of a weight benefit;

FIG. 4 illustrates a flow diagram for an example process to implement a weight benefit evaluator for training data;

FIG. 5 illustrates an example computer program product that can be utilized to implement a weight benefit evaluator for training data; and

FIG. 6 is a block diagram illustrating an example computing device that is arranged to implement a weight benefit evaluator for training data;

all arranged according to at least some embodiments described herein.

DETAILED DESCRIPTION

In the following detailed description, reference is made to the accompanying drawings, which form a part hereof. In the drawings, similar symbols typically identify similar components, unless context dictates otherwise. The illustrative embodiments described in the detailed description, drawings, and claims are not meant to be limiting. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented herein. It will be readily understood that the aspects of the present disclosure, as generally described herein, and illustrated in the Figures, can be arranged, substituted, combined, separated, and designed in a wide variety of different configurations, all of which are explicitly contemplated herein.

This disclosure is generally drawn, inter alia, to methods, apparatus, systems, devices, and computer program products related to a weight benefit evaluator for training data.

Briefly stated, technologies are generally described for methods and systems effective to determine a weight benefit associated with an application of a set of weights to training data in a machine learning environment. For example, the weights may be used to cause some points in the training data to contribute more than other points resulting in generation of a different learned function. In an example, a device may determine a first function based on the training data, where the training data includes training inputs and training labels. For example, the training inputs may be a user profile (e.g., age, gender, income) and labels (e.g., a movie rating). The first function may be effective to indicate a relationship between the training inputs and the training labels. For example, the first function may indicate a relationship between a user profile and a movie rating. The device may determine a second function based on weighted training data, which is based on application of weights to the training data. A second function may be generated after weights are applied to the training data. Operation of the second function may be compared to the first function as discussed herein. The device may determine a third function based on target data, where the target data is generated based on a target function. The target function may be used to compare a function generated with weights and without weights. The target data may include target labels different from the training labels. The device may determine a fourth function based on weighted target data, which may be a result of application of weights to the target data. The device may determine the weight benefit based on the first, second, third, and fourth functions. For example, the device may determine whether the weight should be applied.

FIG. 1 illustrates an example system that can be utilized to implement a weight benefit evaluator for training data, arranged in accordance with at least some embodiments described herein. As will be described in more detail below, a system 100 may be implemented as a machine learning system. System 100 may be implemented to determine a learned function 162 (denoted as g) based on training data 160 (denoted as (x_(i), y_(i))). An example of training data 160 may be a user profile (e.g., age, gender, income) and labels (e.g., a movie rating). An example of a learned function 162 may be a function that receives as input a test user profile and generates as output a test movie rating. Training data 160 may be associated with a set of paired data including training inputs (x_(i)) and training labels (denoted as y_(i)) at each point i. System 100 may be further implemented to determine a weighted function 172 (denoted as g_(w)) based on weighted training data 180 (denoted as (x_(wi), y_(wi))). Weighted training data 180 may be a result of an application of a set of weights (“weights”) 170 (denoted as w_(i)) to training data 160. Set of weights 170 may weigh certain points (including training inputs and training labels) in training data 160 more than other points different from the certain points in training data 160. For example, certain points may be given a higher weight and so may contribute more to the generation of weighted function 172. System 100 may be further implemented to determine a weight benefit 152, where weight benefit 152 may be associated with a benefit to apply set of weights 170 to training data 160.

In an example, system 100 may be implemented with computing device 102, where computing device 102 may be a computer or a server. Computing device 102 may include a processing module 110, a machine learning module 120, a target function generation module 130, an arithmetic module 140, and/or an evaluation module 150. Processing module 110, machine learning module 120, target function generation module 130, arithmetic module 140, and/or evaluation module 150 may be configured to be in communication with each other. Computing device 102 may further include a memory 104 configured to be in communication with processing module 110, machine learning module 120, target function generation module 130, arithmetic module 140, and/or evaluation module 150. In some examples, each module of computing device 102 may be a hardware component or an embedded system including integrated circuits such as FPGA (Field Programmable Gate Array), SoC (System on Chip), etc. In some examples, a first module may be embedded on a second module. For example, arithmetic module 140 may be embedded on target function generation module 130. In some examples, processing module 110, machine learning module 120, target function generation module 130, arithmetic module 140, and/or evaluation module 150 may be components of a processor of computing device 102.

Memory 104 may be configured to store machine learning instructions 122, at least one artificial function 166 (denoted as h_(j)), training data 160, and/or weights 170. Machine learning instructions 122 may include instructions effective to facilitate generation of learned functions such as learned function 162 and/or weighted function 172, etc. Machine learning instructions 122 may further include instructions associated with operations of target function generation module 130, arithmetic module 140, and/or evaluation module 150. In some examples, machine learning instructions 122 may be stored in machine learning module 120. Artificial function 166 may be a function which was previously generated by an implementation of system 100 as is described below.

Training data 160 may be associated with a set of paired data including training inputs (x_(i)) and training labels (y_(i)). Training inputs (x_(i)) may be a set of vectors, where each vector may correspond to one or more coordinates. Set of weights 170 may be a set of vectors which may be applied, such as by processing module 110, to training data 160. As a result of the application of weights 170 to training data 160, weighted training data 180 may be generated. Weighted training data 180 may be associated with a set of paired data including weighted training inputs (x_(wi)) and weighted training labels (y_(wi)). In some examples, set of weights 170 may be received at computing device 102 from another computing device. In some examples, computing device 102 may further include a weight generation module 106 configured to generate weights 170. In some examples, processing module 110 may be further configured to control operations of one or more modules in computing device 102 such as machine learning module 120, target function generation module 130, arithmetic module 140, and evaluation module 150. Processing module 110 may be further configured to receive weight benefit 152 from evaluation module 150, and in response, determine whether to apply weights 170 to training data 160. Weight benefit 152 may be binary data such as “apply” or “do not apply”, or “0” and “1”, or “A” and “not A”, etc.

Target function generation module 130 may be configured to generate a target function 168 (denoted as f_(j)) with use of training data 160 and artificial function 166 (described below). In some examples, arithmetic module 140 may be configured to perform particular operations to facilitate generation of target function 168 by target function generation module 130. For example, arithmetic module 140 may be configured to perform complex computations such as comparison of large datasets during implementation of system 100.

Machine learning module 120 may be configured to determine learned function 162 based on training data 160. Determination of learned function 162 may include determining a relationship between training inputs (x_(i)) and training labels (y_(i)). Learned function 162 may be effective to indicate the relationship between training inputs (x_(i)) and training labels (y_(i)). Machine learning module 120 may be further configured to determine weighted function 172 based on weighted training data 180. Determination of weighted function 172 may include determining a relationship between weighted training inputs (x_(wi)) and weighted training labels (y_(wi)). Weighted function 172 may be effective to indicate the relationship between weighted training inputs (x_(wi)) and weighted training labels (y_(wi)). As will be described in more detail below, machine learning module 120 may be configured to determine an artificial learned function 164 (denoted as g_(j)) and an artificial weighted function 174 (denoted as g_(wj)) based on artificial function 166 and target function 168. Evaluation module 150 may determine weight benefit 152 based on learned function 162, weighted function 172, artificial learned function 164, and artificial weighted function 174.

FIG. 2 illustrates example system 100 of FIG. 1 with additional detail relating to determination of an artificial learned function and an artificial weighted function, arranged in accordance with at least some embodiments described herein. FIG. 2 is substantially similar to system 100 of FIG. 1, with additional details. Those components in FIG. 2 that are labeled identically to components of FIG. 1 will not be described again for the purposes of clarity.

As will be described in more detail below, target function generation module 130 may generate one or more target functions 168 based on training data 160 (in memory 104) and based on artificial function 166 (in memory 104) (described with reference to operations {210, 211, 212, 213}). After generation of target function 168, target function generation module 130 may generate target data 230 based on training data 160 and based on target function 168. Processing module 110 may apply weights 170 to target data 230 to generate weighted target data 232 (operations {214, 215}). Machine learning module 120 may determine artificial learned function 164 based on target data 230 (operation {216}). Machine learning module 120 may further determine artificial weighted function 174 based on weighted target data 232 (operation {216}).

At operation 210, target function generation module 130 may retrieve artificial function 166 from memory 104. In an example, processing module 110 may be configured to instruct target function generation module 130 to select a number of artificial functions 166 among more than one artificial functions stored in memory 104. Selection of artificial function 166 may be based on machine learning instructions 122. In an example, an output of machine learning instructions 122, and the final desired learned function, may be a function that follows a model represented by a polynomial of degree four, such as ax³+bx²+cx+d. Processing module 110 may randomly select a set of parameters, such as values for coefficients a, b, c, d, based on instructions in machine learning instructions 122. For a particular selection j, if processing module 110 selects a=1, b=3, c=7, d=12, then the j^(th) artificial function 166 would be x³+3x²+7x+12.

After selection of the number of artificial functions 166, generation of target function 168 may continue from operation 210 to operation 211. At operation 211, target function generation module 130 may apply training inputs x_(i) of training data 160 to the selected number of artificial functions 166. Application of training inputs x_(i) to artificial function 166 may result in generation of artificial data 220. Artificial data 220 may include one or more sets of paired data, denoted by (x_(i),h_(j)(x_(i))), where i corresponds to a point of training data 160 and j corresponds to a selected artificial function. The number of sets of paired data may be equivalent to the number of selected artificial functions 166. The number of points in each set of artificial data 220 may be equal to the number of points in training data 160. For example, training data 160 may include one hundred points (e.g., i=1, 2, . . . 100, and (x_(i), y_(i))=(x₁, y₁), (x₂, y₂), . . . (x₁₀₀, y₁₀₀)). Processing module 110 may select ten sets of parameters in order to select ten artificial functions 166. Target function generation module 130 may generate ten sets of artificial data 220 based on the ten corresponding artificial functions, such that each set among the ten sets of artificial data 220 may include one hundred points.

After generation of artificial data 220, generation of target function 168 may continue from operation 211 to operation 212. At operation 212, target function generation module 130 may send training data 160 and artificial data 220 to arithmetic module 140. Arithmetic module 140 may determine a training mean 240, which may be a mean of training data 160. Arithmetic module 140 may further determine a training standard deviation 242, which may be a standard deviation of training data 160. Arithmetic module 140 may further determine a number of artificial mean 250 (denoted as m_(j)), where each artificial mean may be a mean of a particular set of artificial data 220. For example, an artificial mean m₁ may be an artificial mean of the set of artificial data 220 at j=1. Arithmetic module 140 may further determine a number of artificial standard deviation 252 (denoted as d_(j)), where each artificial standard deviation may be a standard deviation of a particular set of artificial data 220. For example, an artificial standard deviation d₁ may be a standard deviation of the set of artificial data 220 at j=1. Arithmetic module 140 may send training mean 240, training standard deviation 242, artificial mean 250, and artificial standard deviation 252 to target function generation module 130. In some examples, where arithmetic module 140 may be a component of target function generation module 130, target function generation module 130 may determine training mean 240, training standard deviation 242, artificial mean 250, and artificial standard deviation 252.

After generation of training mean 240, training standard deviation 242, artificial mean 250, and artificial standard deviation 252, generation of target function 168 may continue from operation 212 to operation 213. At operation 213, target function generation module may generate a number of target functions 168 based on artificial data 220, training mean 240, training standard deviation 242, artificial mean 250, and artificial standard deviation 252. The number of target functions 168 may be equivalent to the number of selected artificial functions 166 or the number of sets in artificial data 220. For example, a target function f₂ may be based on artificial function h₂, or a set of artificial data 220 at j=2. A target function f₂ may be generated based on artificial data 220 at j=2, training mean 240, training standard deviation 242, an artificial mean 250 m₂, and an artificial standard deviation 252 d₂.

In some examples, target function generation module 130 may generate the number of target functions 168 by applying a sign function to training mean 240, training standard deviation 242, artificial mean 250, and artificial standard deviation 252. In some examples, target function generation module 130 may generate target function 168 by applying a round function to training mean 240, training standard deviation 242, artificial mean 250, and artificial standard deviation 252. In some examples, target function generation module 130 may generate target function 168 by applying a nearest number function to training mean 240, training standard deviation 242, artificial mean 250, and artificial standard deviation 252. Target function generation module 130 may generate target function 168 by applying various other functions, which may be selected based on machine learning instructions 122, to training mean 240, training standard deviation 242, artificial mean 250, and artificial standard deviation 252. In some examples, target function 168 may be further based on a noise parameter such as a Gaussian noise.

After generation of target function 168, target function generation module 130 may generate target data 230 and weighted target data 232. At operation 214, target function generation module 130 may apply training inputs x_(i) of training data 160 to each target function 168 to generate target data 230. Target data 230 may include one or more sets of paired data, denoted by (x_(i),f_(j)(x_(i))), where the number of sets of paired data in target data 230 may be equivalent to the number of target functions 168. The number of points in each set of target data 230 may be equal to the number of points in training data 160. For example, if target generation function module 130 generated ten target functions 168, then there are ten sets of target data in target data 230. After generation of target data 230, at operation 215, processing module 110 may apply set of weights 170 to training data 160 to generate weighted target data 232. Weighted target data 232 may include one or more sets of paired data, denoted by (x_(i),f_(wj)(x_(i))), where the number of sets of paired data in weighted target data 232 may be equivalent to the number of target functions 168. The number of points in each set of weighted target data 232 may be equal to the number of points in training data 160.

After generation of target data 230 and weighted target data 232, machine learning module 120 may determine a number of artificial learned functions 164 and may determine a number of artificial weighted functions 174. Machine learning module 120 may determine a particular artificial learned function 164 based on a particular target data 230. For example, machine learning module 120 may determine an artificial learned function g₂ based on target data (x_(i),f₂(x_(i))) at set j=2. The number of artificial learned functions 164 may be equivalent to the number of sets of target data in target data 230. Machine learning module 120 may further determine a particular artificial weighted function 174 based on a particular weighted target data 232. The number of artificial weighted functions 174 may be equivalent to the number of sets of weighted target data in weighted target data 232.

FIG. 3 illustrates example system 100 of FIG. 1 with additional detail relating to determination of the weight benefit, arranged in accordance with at least some embodiments described herein. FIG. 3 is substantially similar to system 100 of FIG. 1, with additional details. Those components in FIG. 3 that are labeled identically to components of FIG. 1 will not be described again for the purposes of clarity.

As will be described in more detail below, machine learning module 120 may apply a set of test inputs 302 to learned function 162, weighted function 172, one or more artificial learned function 164, and one or more artificial weighted function 174 (operation {310}). As a result of the application, machine learning module 120 may generate test data 304, weighted test data 305, artificial test data 306, and artificial weighted test data 307 (operation {310}). Arithmetic module 140 may determine evaluation values 340 based on test data 304, weighted test data 305, artificial test data 306, and artificial weighted test data 307 (operations {311, 312}). Evaluation module 150 may generate weight benefit 152 based on evaluation values 340 (operations {313, 314, 315}).

At operation 310, machine learning module 120 may apply test inputs 302 to learned function 162 to generate test data 304. Test inputs 302 may be a set of vectors (denoted as s) and may be received from a device outside of system 100. Test data 304 may be associated with a set of paired data (denoted as (s_(i),g(s_(i))) including test inputs 302 s_(i) and generated test labels g(s_(i)). Learned function 162 may be effective to define a relationship between test inputs 302 and generated test labels g(s_(i)). Machine learning module 120 may further apply test inputs 302 to weighted function 172 to generate weighted test data 305. Weighted test data 305 may be associated with a set of paired data (denoted as (s_(i),g_(w)(s_(i))) including test inputs 302 s_(i) and generated weighted test labels g_(w)(s_(i)). Weighted function 172 may be effective to define a relationship between test inputs 302 and weighted test labels g_(w)(s_(i)).

Machine learning module 120 may further apply test inputs 302 to each artificial learned function g_(j) among artificial learned function 164 to generate one or more sets of artificial test data 306 (denoted as (s_(i),g_(j)(s_(i))). Each set of artificial test data 306 may be associated with a set of paired data including test inputs 302 s_(i) and a corresponding artificial test labels g_(j)(s_(i)). For example, machine learning module 120 may apply test input 302 to an artificial learned function g₂ to generate a set of artificial test data (s_(i),g₂(s_(i))). Artificial learned function 164 may be effective to define a relationship between test inputs 302 and artificial test labels g_(j)(s_(i)). Machine learning module 120 may further apply test inputs 302 to each artificial weighted function among artificial weighted function 174 to generate artificial weighted test data 307 (denoted as (s_(i),g_(wj)(s_(i))). Each set of artificial weighted test data 307 may be associated with a set of paired data including testing inputs 302 s_(i) and a corresponding artificial weighted test labels g_(wj)(s_(i)). Artificial weighted function 174 may be effective to define a relationship between test inputs 302 and artificial weighted test labels g_(wj)(s_(i)).

At operation 311, arithmetic module 140 may determine an expected value 320 between learned function 162 and weighted function 172. An example of expected value 320 between learned function 162 and weighted function 172 may be:

E[(g−g _(w))²]

where g denotes learned function 162 and g_(w) denotes weighted function 172.

In an example, arithmetic module 140 may determine expected value 320 with use of test inputs 302, such as:

E[(g(s _(i))−g _(w)(s _(i)))²]

where s_(i) is test inputs 302, g(s_(i)) is test labels t_(i), and g_(w)(s_(i)) is weighted test labels t_(wi).

Similarly, arithmetic module 140 may further determine an expected value 322 between each j^(th) artificial learned function 164 and each j^(th) target function 168. Arithmetic module 140 may further determine an expected value 324 between each j^(th) artificial weighted function 174 and each j^(th) target function 168. Arithmetic module 140 may further determine an expected value 326 between each j^(th) artificial learned function 164 and each j^(th) artificial weighted function 174. Arithmetic module 140 may determine expected values 322, 324, 326 with use of test inputs 302.

At operation 312, arithmetic module 140 may determine a number of evaluation values 340 (denoted as T_(j)). Evaluation values 340 may be based on expected values 322, 324, 326, such as:

T _(j) =E[(g _(j) −f _(j))² ]−E[(g _(wj) −f _(j))² ]−E[(g _(j) −g _(wj))²]

where E[(g_(j)−f_(j))²] denotes expected value 322, E[(g_(wj)−f_(j))²] denotes expected value 324, and E[(g_(j)−g_(wj))²] denotes expected value 326.

At operation 313, evaluation module 150 may compare each value among evaluation values 340 with expected value 320. An example comparison of evaluation values 340 with expected value 320 may be based on a condition 342:

E[(g−g _(w))² ]+T _(j)>0

Evaluation module 150 may determine a count 350 by counting how many values among evaluation values 340 meets condition 342. For example, if thirty seven values among evaluation values 340 meet condition 342, then count 350 will be of a value “37”. At operation 314, evaluation module 150 may compare count 350 with a threshold 360, where threshold 360 may be defined by machine learning instructions 122 and may be stored in memory 104. In an example, threshold 360 may be half of the number of points of training data 160. For example, when training data 160 includes one hundred points, threshold 360 may be of a value “50”.

At operation 315, evaluation module 150 may determine weight benefit 152 based on the comparison of count 350 and threshold 360. Evaluation module 150 may assign a value to weight benefit 152 based on the comparison of count 350 and threshold 360. In an example, when count 350 is “37” and threshold is “50”, evaluation module 150 may assigned to a value of “1”, or “A” (“apply”) to weight benefit 152. Similarly, when count 350 is “71” and threshold is “50”, evaluation module 150 may assigned to a value of “0”, or “not A” (“do not apply”) to weight benefit 152. Evaluation module 150 may send weight benefit 152 to processing module 110. Processing module 110, based on the value of weight benefit 152, may determine whether to apply weights 170 to training data 160. Processing module 110, based on the value of weight benefit 152, may further instruct machine learning module 120 whether to deploy learned function 162 or weighted function 172.

Among other possible benefits, a system in accordance with the disclosure may improve a performance of a machine learning system. In some examples, a weighted function determined from weighted training data may be considered as more accurate than a function determined from an unweighted training data. However, weighted training data may result in sample loss and may unintentionally hurt the generation of the weighted function. A system in accordance with the disclosure may provide a method to determine whether application of weights to training data may benefit or hurt the performance of the machine learning system.

FIG. 4 illustrates a flow diagram for an example process to implement a weight benefit evaluator for training data, arranged in accordance with at least some embodiments presented herein. The process in FIG. 4 could be implemented using, for example, system 100 discussed above. An example process may include one or more operations, actions, or functions as illustrated by one or more of blocks S2, S4, S6, S8, S10, S12, S14, and/or S16. Although illustrated as discrete blocks, various blocks may be divided into additional blocks, combined into fewer blocks, or eliminated, depending on the desired implementation.

Processing may begin at block S2, “Determine a first function based on training data”. At block S2, a device may determine a first function based on training data. The training data may include training inputs and training labels.

Processing may continue from block S2 to block S4, “Apply a set of weights to the training data to generate weighted training data”. At block S4, the device may apply a set of weights to the training data to generate weighted training data.

Processing may continue from block S4 to block S6, “Determine a second function based on the weighted training data”. At block S6, the device may determine a second function based on the weighted training data.

Processing may continue from block S6 to block S8, “Generate target data based on a target function”. At block S8, the device may generate target data based on a target function. The target function may include target labels different from the training labels. The device may generate the target function. In an example, the device may determine a set of parameters to generate an artificial function. The device may further generate artificial data with use of the training inputs and the artificial function. The artificial data may include the training inputs and artificial labels. The device may further determine a first mean associated with the training data. The device may further determine a first standard deviation associated with the training data. The device may further determine a second mean associated with the artificial data. The device may further determine a second standard deviation associated with the artificial data. The device may further generate the target function based on the first mean, the first standard deviation, the second mean, and the second deviation. In some examples, the target function may be based on a noise parameter.

Processing may continue from block S8 to block S10, “Determine a third function based on the target data”. At block S10, the device may determine a third function based on the target data.

Processing may continue from block S10 to block S12, “Apply the set of weights to the target data to generate weighted target data”. At block S12, the device may apply the set of weights to the target data to generate weighted target data.

Processing may continue from block S12 to block S14, “Determine a fourth function based on weighted target data”. At block S14, the device may determine a fourth function based on weighted target data.

Processing may continue from block S14 to block S16, “Determine the weight benefit based on the first, second, third, and fourth functions”. At block S16, the device may determine the weight benefit based on the first, second, third, and fourth function. The weight benefit may be associated with a benefit to apply the set of weights to the training data. In some examples, the device may determine a first expected value, a second expected value, a third expected value, and a fourth expected value. The first expected value may be an expected value between the first function and the second function. The second expected value may be an expected value between the third function and the target function. The third expected value may be an expected value between the third function and the target function. The fourth expected value may be an expected value between the third function and the fourth function. The determination of the weight benefit may be based on the first, second, third, and fourth expected values. In some examples, the first, second, third, and fourth expected values may be based on an application of test inputs to the first, second, third, and fourth functions.

In some examples, the device may further determine an evaluation value with used of the second, third, and fourth expected values. The device may further compare the evaluation value with the first expected value. The device may further determine a count based on the comparison of the evaluation value with the first expected value. The device may further compare the count with a threshold. The determination of the weight benefit may be first based on the comparison of the count with the threshold.

FIG. 5 illustrates an example computer program product that can be utilized to implement a weight benefit evaluator for training data, arranged in accordance with at least some embodiments described herein. Program product 500 may include a signal bearing medium 502. Signal bearing medium 502 may include one or more instructions 504 that, when executed by, for example, a processor, may provide the functionality described above with respect to FIGS. 1-4. Thus, for example, referring to system 100, computing device 102 may undertake one or more of the blocks shown in FIG. 5 in response to instructions 504 conveyed to the system 100 by medium 502.

In some implementations, signal bearing medium 502 may encompass a computer-readable medium 506, such as, but not limited to, a hard disk drive, a Compact Disc (CD), a Digital Versatile Disk (DVD), a digital tape, memory, etc. In some implementations, signal bearing medium 502 may encompass a recordable medium 508, such as, but not limited to, memory, read/write (R/W) CDs, R/W DVDs, etc. In some implementations, signal bearing medium 502 may encompass a communications medium 510, such as, but not limited to, a digital and/or an analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communications link, a wireless communication link, etc.). Thus, for example, program product 500 may be conveyed to one or more modules of the system 100 by an RF signal bearing medium 502, where the signal bearing medium 502 is conveyed by a wireless communications medium 510 (e.g., a wireless communications medium conforming with the IEEE 802.11 standard).

FIG. 6 is a block diagram illustrating an example computing device that is arranged to implement a weight benefit evaluator for training data, arranged in accordance with at least some embodiments described herein. In a very basic configuration 602, computing device 600 typically includes one or more processors 604 and a system memory 606. A memory bus 608 may be used for communicating between processor 604 and system memory 606.

Depending on the desired configuration, processor 604 may be of any type including but not limited to a microprocessor (μP), a microcontroller (μC), a digital signal processor (DSP), or any combination thereof. Processor 604 may include one more levels of caching, such as a level one cache 610 and a level two cache 612, a processor core 614, and registers 616. An example processor core 614 may include an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing core (DSP Core), or any combination thereof. An example memory controller 618 may also be used with processor 604, or in some implementations memory controller 618 may be an internal part of processor 604.

Depending on the desired configuration, system memory 606 may be of any type including but not limited to volatile memory (such as RAM), non-volatile memory (such as ROM, flash memory, etc.) or any combination thereof. System memory 606 may include an operating system 620, one or more applications 622, and program data 624. Application 622 may include a weight benefit evaluation algorithm 626 that is arranged to perform the functions as described herein including those described with respect to system 100 of FIGS. 1-4. Program data 624 may include weight benefit evaluation data 628 that may be useful for implementation of a weight benefit evaluator for training data as is described herein. In some embodiments, application 622 may be arranged to operate with program data 624 on operating system 620 such that implementations of weight benefit evaluator for training data may be provided. This described basic configuration 602 is illustrated in FIG. 6 by those components within the inner dashed line.

Computing device 600 may have additional features or functionality, and additional interfaces to facilitate communications between basic configuration 602 and any required devices and interfaces. For example, a bus/interface controller 630 may be used to facilitate communications between basic configuration 602 and one or more data storage devices 632 via a storage interface bus 634. Data storage devices 632 may be removable storage devices 636, non-removable storage devices 638, or a combination thereof. Examples of removable storage and non-removable storage devices include magnetic disk devices such as flexible disk drives and hard-disk drives (HDDs), optical disk drives such as compact disc (CD) drives or digital versatile disk (DVD) drives, solid state drives (SSDs), and tape drives to name a few. Example computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data.

System memory 606, removable storage devices 636 and non-removable storage devices 638 are examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVDs) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which may be used to store the desired information and which may be accessed by computing device 600. Any such computer storage media may be part of computing device 600.

Computing device 600 may also include an interface bus 640 for facilitating communication from various interface devices (e.g., output devices 642, peripheral interfaces 644, and communication devices 646) to basic configuration 602 via bus/interface controller 630. Example output devices 642 include a graphics processing unit 648 and an audio processing unit 650, which may be configured to communicate to various external devices such as a display or speakers via one or more A/V ports 652. Example peripheral interfaces 644 include a serial interface controller 654 or a parallel interface controller 656, which may be configured to communicate with external devices such as input devices (e.g., keyboard, mouse, pen, voice input device, touch input device, etc.) or other peripheral devices (e.g., printer, scanner, etc.) via one or more I/O ports 658. An example communication device 646 includes a network controller 660, which may be arranged to facilitate communications with one or more other computing devices 662 over a network communication link via one or more communication ports 664.

The network communication link may be one example of a communication media. Communication media may typically be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and may include any information delivery media. A “modulated data signal” may be a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), microwave, infrared (IR) and other wireless media. The term computer readable media as used herein may include both storage media and communication media.

Computing device 600 may be implemented as a portion of a small-form factor portable (or mobile) electronic device such as a cell phone, a personal data assistant (PDA), a personal media player device, a wireless web-watch device, a personal headset device, an application specific device, or a hybrid device that include any of the above functions. Computing device 600 may also be implemented as a personal computer including both laptop computer and non-laptop computer configurations.

The present disclosure is not to be limited in terms of the particular embodiments described in this application, which are intended as illustrations of various aspects. Many modifications and variations can be made without departing from its spirit and scope, as will be apparent to those skilled in the art. Functionally equivalent methods and apparatuses within the scope of the disclosure, in addition to those enumerated herein, will be apparent to those skilled in the art from the foregoing descriptions. Such modifications and variations are intended to fall within the scope of the appended claims. The present disclosure is to be limited only by the terms of the appended claims, along with the full scope of equivalents to which such claims are entitled. It is to be understood that this disclosure is not limited to particular methods, reagents, compounds compositions or biological systems, which can, of course, vary. It is also to be understood that the terminology used herein is for the purpose of describing particular embodiments only, and is not intended to be limiting.

With respect to the use of substantially any plural and/or singular terms herein, those having skill in the art can translate from the plural to the singular and/or from the singular to the plural as is appropriate to the context and/or application. The various singular/plural permutations may be expressly set forth herein for sake of clarity.

It will be understood by those within the art that, in general, terms used herein, and especially in the appended claims (e.g., bodies of the appended claims) are generally intended as “open” terms (e.g., the term “including” should be interpreted as “including but not limited to,” the term “having” should be interpreted as “having at least,” the term “includes” should be interpreted as “includes but is not limited to,” etc.). It will also be understood by those within the art that if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation no such intent is present. For example, as an aid to understanding, the following appended claims may contain usage of the introductory phrases “at least one” and “one or more” to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles “a” or “an” limits any particular claim containing such introduced claim recitation to embodiments containing only one such recitation, even when the same claim includes the introductory phrases “one or more” or “at least one” and indefinite articles such as “a” or “an” (e.g., “a” and/or “an” should be interpreted to mean “at least one” or “one or more”); the same holds true for the use of definite articles used to introduce claim recitations. In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should be interpreted to mean at least the recited number (e.g., the bare recitation of “two recitations,” without other modifiers, means at least two recitations, or two or more recitations). Furthermore, in those instances where a convention analogous to “at least one of A, B, and C, etc.” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g., “a system having at least one of A, B, and C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.). In those instances where a convention analogous to “at least one of A, B, or C, etc.” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g., “a system having at least one of A, B, or C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.). It will be further understood by those within the art that virtually any disjunctive word and/or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to contemplate the possibilities of including one of the terms, either of the terms, or both terms. For example, the phrase “A or B” will be understood to include the possibilities of “A” or “B” or “A and B.”

In addition, where features or aspects of the disclosure are described in terms of Markush groups, those skilled in the art will recognize that the disclosure is also thereby described in terms of any individual member or subgroup of members of the Markush group.

As will be understood by one skilled in the art, for any and all purposes, such as in terms of providing a written description, all ranges disclosed herein also encompass any and all possible subranges and combinations of subranges thereof. Any listed range can be easily recognized as sufficiently describing and enabling the same range being broken down into at least equal halves, thirds, quarters, fifths, tenths, etc. As a non-limiting example, each range discussed herein can be readily broken down into a lower third, middle third and upper third, etc. As will also be understood by one skilled in the art all language such as “up to,” “at least,” “greater than,” “less than,” and the like include the number recited and refer to ranges which can be subsequently broken down into subranges as discussed above. Finally, as will be understood by one skilled in the art, a range includes each individual member. Thus, for example, a group having 1-3 cells refers to groups having 1, 2, or 3 cells. Similarly, a group having 1-5 cells refers to groups having 1, 2, 3, 4, or 5 cells, and so forth.

While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims. 

What is claimed is:
 1. A method to determine whether to apply a set of weights to training data in a machine learning environment, the method comprising: applying, by a device, test inputs to a first function to generate test data, wherein the first function is based on the training data, the training data includes training inputs and training labels, and the test data includes the test inputs and test labels; applying, by the device, the test inputs to a second function to generate weighted test data, wherein the second function is based on weighted training data, the weighted training data is based on the set of weights, and the weighted test data includes the test inputs and weighted test labels; determining, by the device, a third function based on target data, wherein the target data is based on a target function, the target data includes the training inputs, and the target data includes target labels different from the training labels; applying, by the device, the test inputs to the third function to generate artificial test data, wherein the artificial test data includes the test inputs and artificial test labels; determining, by the device, a fourth function based on the set of weights and the target data; applying, by the device, the test inputs to the fourth function to generate artificial weighted test data, wherein the artificial weighted test data includes the test inputs and artificial weighted test labels; determining, by the device, an evaluation value based on the test data, the weighted test data, the artificial test data, and the artificial weighted test data; determining, by the device, the weight benefit based on the evaluation value, wherein the weight benefit is associated with a benefit to apply the set of weights to the training data; and determining, by the device, whether to apply the set of weights to the training data based on the weight benefit.
 2. The method of claim 1, further comprising, prior to applying the test inputs to the first function: receiving, by the device, the first function; receiving, by the device, the second function; receiving, by the device, the target function; and generating, by the device, the target data based on the target function.
 3. The method of claim 1, further comprising, prior to applying the test inputs to the first function: receiving, by the device, the first function; receiving, by the device, the second function; generating, by the device, the target function; and generating, by the device, the target data based on the target function.
 4. The method of claim 3, wherein generating the target function comprises: determining, by the device, a set of parameters to generate an artificial function; generating, by the device, artificial data based on the training inputs and the artificial function, wherein the artificial data includes the training inputs and artificial labels; and generating, by the device, the target function based on the training data and the artificial data.
 5. The method of claim 1, wherein determining the weight benefit comprises: determining, by the device, an expected value between the first function and the second function; comparing, by the device, the evaluation value with the expected value; determining, by the device, a count based on the comparison of the evaluation value with the expected value; comparing, by the evaluation module of the device, the count with a threshold; and determining, by the device, the weight benefit based on the comparison of the count with the threshold.
 6. The method of claim 5, wherein the expected value is a first expected value, the method further comprises: determining, by the device, a second expected value between the third function and the target function; determining, by the device, a third expected value between the fourth function and the target function; determining, by the device, a fourth expected value between the third function and the fourth function; and determining, by the device, the evaluation value based on the second, third, and fourth expected values.
 7. The method of claim 5, further comprising: determining, by the device, the count is greater than the threshold based on the comparison of the count with the threshold; and deploying, by the device, the first function in the machine learning environment in response to the determination that the count is greater than the threshold.
 8. The method of claim 5, further comprising: determining, by the device, the count is less than the threshold based on the comparison of the count with the threshold; and applying, by the device, the set of weights to the training data in response to the determination that the count is less than the threshold.
 9. The method of claim 8, further comprising deploying, by the device, the second function in the machine learning environment in response to applying the set of weights to the training data.
 10. A system effective to whether to apply a set of weights to training data in a machine learning environment, the system comprising: a memory configured to: store the training data, wherein the training data includes training inputs and training labels; store the set of weights; and store a set of test inputs; a machine learning module configured to be in communication with the memory, the machine learning module being configured to: apply the test inputs to a first function to generate test data, wherein the first function is based on the training data, the training data includes training inputs and training labels, and the test data includes the test inputs and test labels; apply the test inputs to a second function to generate weighted test data, wherein the second function is based on weighted training data, the weighted training data is based on the set of weights, and the weighted test data includes the test inputs and weighted test labels; determine a third function based on the target data based on target data, wherein the target data is based on a target function, the target data includes the training inputs, and the target data includes target labels different from the training labels; apply the test inputs to the third function to generate artificial test data, wherein the artificial test data includes the test inputs and artificial test labels; determine a fourth function based on the set of weights and the target data; apply the test inputs to the fourth function to generate artificial weighted test data, wherein the artificial weighted test data includes the test inputs and artificial weighted test labels; an evaluation module configured to be in communication with the machine learning module and the memory, the evaluation module being configured to: determine an evaluation value based on the test data, the weighted test data, the artificial test data, and the artificial weighted test data; and determine the weight benefit based on the evaluation value, wherein the weight benefit is associated with a benefit to apply the set of weights to the training data; and a processing module configured to be in communication with the evaluation module, the machine learning module, and the memory, the processing module being configured to determine whether to apply the set of weights to the training data based on the weight benefit.
 11. The system of claim 10, further comprising a target function generation module configured to be in communication with the processing module, the evaluation module, the machine learning module, and the memory, the target function generation module being configured to: determine a set of parameters to generate an artificial function; generate artificial data based on the training inputs and the artificial function, wherein the artificial data includes the training inputs and artificial labels; generate the target function based on the training data and the artificial data; generate the target data based on the target function; and store the target data in the memory;
 12. The system of claim 10, wherein the evaluation device is further configured to: determine an expected value between the first function and the second function; compare the evaluation value with the expected value; determine a count based on the comparison of the evaluation value with the expected value; compare the count with a threshold; and determine the weight benefit based on the comparison of the count with the threshold.
 13. The system of claim 12, wherein the processing module is further configured to: determine the count is greater than the threshold based on the comparison of the count with the threshold; and deploy the first function in the machine learning environment in response to the determination that the count is greater than the threshold.
 14. The system of claim 12, wherein the processing module is further configured to: determine the count is less than the threshold based on the comparison of the count with the threshold; and apply the set of weights to the training data in response to the determination that the count is less than the threshold.
 15. The system of claim 14, wherein the processing module is further configured to deploy the second function in the machine learning environment in response to applying the set of weights to the training data.
 16. A method to determine whether to deploy a first function or a second function in a machine learning environment, the method comprising: applying, by a device, test inputs to a first function to generate test data, wherein the first function is based on the training data, the training data includes training inputs and training labels, and the test data includes the test inputs and test labels; applying, by the device, the test inputs to a second function to generate weighted test data, wherein the second function is based on weighted training data, the weighted training data is based on the set of weights, and the weighted test data includes the test inputs and weighted test labels; determining, by the device, a third function based on target data, wherein the target data is based on a target function, the target data includes the training inputs, and the target data includes target labels different from the training labels; applying, by the device, the test inputs to the third function to generate artificial test data, wherein the artificial test data includes the test inputs and artificial test labels; determining, by the device, a fourth function based on the set of weights and the target data; applying, by the device, the test inputs to the fourth function to generate artificial weighted test data, wherein the artificial weighted test data includes the test inputs and artificial weighted test labels; determining, by the device, an evaluation value based on the third and fourth functions; comparing, by the device, the evaluation value with an expected value between the first function and the second function; determining, by the device, a count based on the comparison of the evaluation value with the expected value; comparing, by the evaluation module of the device, the count with a threshold; and determining, by the device, whether to deploy the first function or the second function in the machine learning environment based on the comparison of the count with the threshold.
 17. The method of claim 16, wherein the expected value is a first expected value, the method further comprises: determining, by the device, a second expected value between the third function and the target function; determining, by the device, a third expected value between the fourth function and the target function; determining, by the device, a fourth expected value between the third function and the fourth function; and determining, by the device, the evaluation value based on the second, third, and fourth expected values.
 18. The method of claim 16, further comprising: determining, by the device, the count is greater than the threshold based on the comparison of the count with the threshold; and deploying, by the device, the first function in the machine learning environment in response to the determination that the count is greater than the threshold.
 19. The method of claim 16, further comprising: determining, by the device, the count is less than the threshold based on the comparison of the count with the threshold; and applying, by the device, the set of weights to the training data in response to the determination that the count is less than the threshold.
 20. The method of claim 16, further comprising deploying, by the device, the second function in the machine learning environment in response to applying the set of weights to the training data. 